<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>


    <script>

        // 变量的作用域 --- 变量生效的范围
        //    全局作用域  --- 在外部声明的变量 (在外面和函数里面都可以使用)
        //    局部作用域 --- 在函数内部声明的变量(只能在函数内部使用)


        // 变量a是在外面声明的 --- 在所有的地方都可以访问
        var a = 10 ;

        function fn() {
            console.log(a) ;
            // 变量b是在函数内部声明的 --- 在函数外部是无法被访问到的
            var b = 20 ;
            console.log(b) ;
        }

        fn() ;   // 控制台输出10 


        // console.log(b) ;   // 报错  b is not defined    

        console.log(a) ;



        function rand(min , max) {
            // retun parseInt(Math.random() * (max - min )) + min ;
            var num = parseInt(Math.random() * (max - min )) + min ;
            // num在函数内部声明，无法被外部访问到   return 
            return num ;
        } 


        rand(0 ,100) ;
        // console.log(num) ;   // 报错


        // num 的值会被 res 接收
        var res = rand(0 , 100) ; 

        console.log(res) ;





        var n ;   // 是一个全局变量

        function rand(min , max) {
            n = parseInt(Math.random() * (max - min )) + min ;
        } 


        rand(0 , 100) ;   // 执行完函数以后，n被重新赋值了
        console.log(n) ;   



        // 建议尽量使用局部变量







    </script>
    
</body>
</html>